package levev01.two;

import java.io.File;
import java.util.Scanner;

/**
 * 1. 创建一个类实现文件过滤器 FileFilter 接口并重新 accept 方法，在该方法根据传入的文件
 * 判断是否文件 Java 文件，如果是则返回 true，否则返回 false。
 * 2. 根据文件夹路径字符串创建文件对象和创建文件过滤器接口实现类对象
 * 3. 调用文件对象的 listFiles(FileFilter f) 方法，传递文件过滤器实现类对象。
 * 遍历文件数组，输入每一个文件对象
 */
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入需要过滤的文件夹");
        String nextLine = scanner.nextLine();
        File file = new File(nextLine);
        //构造过滤器
        MyFilter myFilter = new MyFilter();
        //将需要过滤的文件夹和过滤出来的数组传入自己定义的递归方法
        fu(file,myFilter);
    }

   public static void fu(File file,MyFilter myFilter){
       //将过滤出来的文件转成数组类型()里面可以填写过滤器接口(FileFilter)
       //files是咱们传入路径的文件，()里面的参数是咱们定义的过滤器；这个数组就是咱们传入的文件经过咱们的过滤条件之后出来的数组
       File[] files = file.listFiles(myFilter);
        for (File file1 : files) {
            if (file1.isDirectory()) {
                System.out.println("是文件夹"+file1.getName());
                fu(file1,myFilter);
            }else {
                System.out.println("是java文件"+file1.getName());
            }
        }
    }
}
